#ifndef SDK_OHOS_OHOS_MEDIA_CONSTRANTS_H_
#define SDK_OHOS_OHOS_MEDIA_CONSTRANTS_H_

#include <string>
#include <map>
#include "api/ohos_media_constraints_interface.h"
#include "rtc_base/logging.h"
#include "sdk/media_constraints.h"

namespace ohoswebrtc {

class OHOSMediaConstraints : public OHOSMediaConstraintsInterface {
 public:
  static rtc::scoped_refptr<OHOSMediaConstraints> Create(std::map<std::string, std::string> mandatory, std::map<std::string, std::string> optional);
  OHOSMediaConstraints(std::map<std::string, std::string> mandatory,
                       std::map<std::string, std::string> optional);
  virtual ~OHOSMediaConstraints();
  /*
  Get Mandatory Constraints
  */
  const webrtc::MediaConstraints::Constraints& GetMandatory() const override { return mandatory_; }
  /*
  Get Optional Constraints
  */
  const webrtc::MediaConstraints::Constraints& GetOptional() const override { return optional_; }

 private:
  webrtc::MediaConstraints::Constraints mandatory_;
  webrtc::MediaConstraints::Constraints optional_;
};
}

#endif